//! 游戏相关字符集
//! 
//! 包含各种游戏类型、游戏元素、控制器等相关的字符和图标

use std::collections::HashMap;
use crate::CharacterSet;

/// 获取游戏相关字符集
pub fn get_gaming_characters() -> HashMap<String, CharacterSet> {
    let mut characters = HashMap::new();

    // 游戏控制器
    characters.insert("gamepad".to_string(),
        CharacterSet::new()
            .simple("🎮")
            .icon("🎮")
            .bold("🎮")
    );

    characters.insert("controller".to_string(),
        CharacterSet::new()
            .simple("🎮")
            .icon("🎮")
            .bold("🎮")
    );

    characters.insert("joystick".to_string(),
        CharacterSet::new()
            .simple("🕹")
            .icon("🕹️")
            .bold("🕹")
    );

    characters.insert("arcade".to_string(),
        CharacterSet::new()
            .simple("🕹")
            .icon("🕹️")
            .bold("🕹")
    );

    // 游戏类型
    characters.insert("rpg".to_string(),
        CharacterSet::new()
            .simple("⚔")
            .icon("⚔️")
            .bold("⚔")
    );

    characters.insert("action".to_string(),
        CharacterSet::new()
            .simple("💥")
            .icon("💥")
            .bold("💥")
    );

    characters.insert("adventure".to_string(),
        CharacterSet::new()
            .simple("🗺")
            .icon("🗺️")
            .bold("🗺")
    );

    characters.insert("strategy".to_string(),
        CharacterSet::new()
            .simple("♟")
            .icon("♟️")
            .bold("♟")
    );

    characters.insert("puzzle".to_string(),
        CharacterSet::new()
            .simple("🧩")
            .icon("🧩")
            .bold("🧩")
    );

    characters.insert("racing".to_string(),
        CharacterSet::new()
            .simple("🏎")
            .icon("🏎️")
            .bold("🏎")
    );

    characters.insert("sports".to_string(),
        CharacterSet::new()
            .simple("⚽")
            .icon("⚽")
            .bold("⚽")
    );

    characters.insert("fighting".to_string(),
        CharacterSet::new()
            .simple("👊")
            .icon("👊")
            .bold("👊")
    );

    characters.insert("shooting".to_string(),
        CharacterSet::new()
            .simple("🎯")
            .icon("🎯")
            .bold("🎯")
    );

    characters.insert("simulation".to_string(),
        CharacterSet::new()
            .simple("🏠")
            .icon("🏠")
            .bold("🏠")
    );

    characters.insert("horror".to_string(),
        CharacterSet::new()
            .simple("👻")
            .icon("👻")
            .bold("👻")
    );

    characters.insert("fantasy".to_string(),
        CharacterSet::new()
            .simple("🧙")
            .icon("🧙")
            .bold("🧙")
    );

    characters.insert("sci_fi".to_string(),
        CharacterSet::new()
            .simple("🚀")
            .icon("🚀")
            .bold("🚀")
    );

    // 游戏元素
    characters.insert("player".to_string(),
        CharacterSet::new()
            .simple("👤")
            .icon("👤")
            .bold("👤")
    );

    characters.insert("enemy".to_string(),
        CharacterSet::new()
            .simple("👹")
            .icon("👹")
            .bold("👹")
    );

    characters.insert("boss".to_string(),
        CharacterSet::new()
            .simple("👾")
            .icon("👾")
            .bold("👾")
    );

    characters.insert("npc".to_string(),
        CharacterSet::new()
            .simple("🤖")
            .icon("🤖")
            .bold("🤖")
    );

    characters.insert("item".to_string(),
        CharacterSet::new()
            .simple("🎒")
            .icon("🎒")
            .bold("🎒")
    );

    characters.insert("weapon".to_string(),
        CharacterSet::new()
            .simple("⚔")
            .icon("⚔️")
            .bold("⚔")
    );

    characters.insert("armor".to_string(),
        CharacterSet::new()
            .simple("🛡")
            .icon("🛡️")
            .bold("🛡")
    );

    characters.insert("power_up".to_string(),
        CharacterSet::new()
            .simple("⭐")
            .icon("⭐")
            .bold("⭐")
    );

    characters.insert("coin".to_string(),
        CharacterSet::new()
            .simple("🪙")
            .icon("🪙")
            .bold("🪙")
    );

    characters.insert("gem".to_string(),
        CharacterSet::new()
            .simple("💎")
            .icon("💎")
            .bold("💎")
    );

    characters.insert("key".to_string(),
        CharacterSet::new()
            .simple("🗝")
            .icon("🗝️")
            .bold("🗝")
    );

    characters.insert("potion".to_string(),
        CharacterSet::new()
            .simple("🧪")
            .icon("🧪")
            .bold("🧪")
    );

    // 游戏状态
    characters.insert("level".to_string(),
        CharacterSet::new()
            .simple("📊")
            .icon("📊")
            .bold("📊")
    );

    characters.insert("experience".to_string(),
        CharacterSet::new()
            .simple("⭐")
            .icon("⭐")
            .bold("⭐")
    );

    characters.insert("xp".to_string(),
        CharacterSet::new()
            .simple("⭐")
            .icon("⭐")
            .bold("⭐")
    );

    characters.insert("health".to_string(),
        CharacterSet::new()
            .simple("❤")
            .icon("❤️")
            .bold("❤")
    );

    characters.insert("hp".to_string(),
        CharacterSet::new()
            .simple("❤")
            .icon("❤️")
            .bold("❤")
    );

    characters.insert("mana".to_string(),
        CharacterSet::new()
            .simple("💙")
            .icon("💙")
            .bold("💙")
    );

    characters.insert("mp".to_string(),
        CharacterSet::new()
            .simple("💙")
            .icon("💙")
            .bold("💙")
    );

    characters.insert("stamina".to_string(),
        CharacterSet::new()
            .simple("💛")
            .icon("💛")
            .bold("💛")
    );

    characters.insert("energy".to_string(),
        CharacterSet::new()
            .simple("⚡")
            .icon("⚡")
            .bold("⚡")
    );

    characters.insert("score".to_string(),
        CharacterSet::new()
            .simple("🏆")
            .icon("🏆")
            .bold("🏆")
    );

    characters.insert("points".to_string(),
        CharacterSet::new()
            .simple("📊")
            .icon("📊")
            .bold("📊")
    );

    characters.insert("lives".to_string(),
        CharacterSet::new()
            .simple("❤")
            .icon("❤️")
            .bold("❤")
    );

    // 游戏操作
    characters.insert("jump".to_string(),
        CharacterSet::new()
            .simple("⬆")
            .icon("⬆️")
            .bold("⬆")
    );

    characters.insert("run".to_string(),
        CharacterSet::new()
            .simple("🏃")
            .icon("🏃")
            .bold("🏃")
    );

    characters.insert("attack".to_string(),
        CharacterSet::new()
            .simple("⚔")
            .icon("⚔️")
            .bold("⚔")
    );

    characters.insert("defend".to_string(),
        CharacterSet::new()
            .simple("🛡")
            .icon("🛡️")
            .bold("🛡")
    );

    characters.insert("cast".to_string(),
        CharacterSet::new()
            .simple("✨")
            .icon("✨")
            .bold("✨")
    );

    characters.insert("spell".to_string(),
        CharacterSet::new()
            .simple("✨")
            .icon("✨")
            .bold("✨")
    );

    characters.insert("heal".to_string(),
        CharacterSet::new()
            .simple("💚")
            .icon("💚")
            .bold("💚")
    );

    characters.insert("buff".to_string(),
        CharacterSet::new()
            .simple("⬆")
            .icon("⬆️")
            .bold("⬆")
    );

    characters.insert("debuff".to_string(),
        CharacterSet::new()
            .simple("⬇")
            .icon("⬇️")
            .bold("⬇")
    );

    // 多人游戏
    characters.insert("multiplayer".to_string(),
        CharacterSet::new()
            .simple("👥")
            .icon("👥")
            .bold("👥")
    );

    characters.insert("team".to_string(),
        CharacterSet::new()
            .simple("👥")
            .icon("👥")
            .bold("👥")
    );

    characters.insert("guild".to_string(),
        CharacterSet::new()
            .simple("🏰")
            .icon("🏰")
            .bold("🏰")
    );

    characters.insert("clan".to_string(),
        CharacterSet::new()
            .simple("🏰")
            .icon("🏰")
            .bold("🏰")
    );

    characters.insert("party".to_string(),
        CharacterSet::new()
            .simple("🎉")
            .icon("🎉")
            .bold("🎉")
    );

    characters.insert("raid".to_string(),
        CharacterSet::new()
            .simple("⚔")
            .icon("⚔️")
            .bold("⚔")
    );

    characters.insert("pvp".to_string(),
        CharacterSet::new()
            .simple("⚔")
            .icon("⚔️")
            .bold("⚔")
    );

    characters.insert("pve".to_string(),
        CharacterSet::new()
            .simple("👹")
            .icon("👹")
            .bold("👹")
    );

    // 游戏平台
    characters.insert("pc".to_string(),
        CharacterSet::new()
            .simple("💻")
            .icon("💻")
            .bold("💻")
    );

    characters.insert("console".to_string(),
        CharacterSet::new()
            .simple("🎮")
            .icon("🎮")
            .bold("🎮")
    );

    characters.insert("mobile".to_string(),
        CharacterSet::new()
            .simple("📱")
            .icon("📱")
            .bold("📱")
    );

    characters.insert("vr".to_string(),
        CharacterSet::new()
            .simple("🥽")
            .icon("🥽")
            .bold("🥽")
    );

    characters.insert("ar".to_string(),
        CharacterSet::new()
            .simple("📱")
            .icon("📱")
            .bold("📱")
    );

    // 游戏成就
    characters.insert("achievement".to_string(),
        CharacterSet::new()
            .simple("🏆")
            .icon("🏆")
            .bold("🏆")
    );

    characters.insert("trophy".to_string(),
        CharacterSet::new()
            .simple("🏆")
            .icon("🏆")
            .bold("🏆")
    );

    characters.insert("medal".to_string(),
        CharacterSet::new()
            .simple("🥇")
            .icon("🥇")
            .bold("🥇")
    );

    characters.insert("badge".to_string(),
        CharacterSet::new()
            .simple("🎖")
            .icon("🎖️")
            .bold("🎖")
    );

    characters.insert("unlock".to_string(),
        CharacterSet::new()
            .simple("🔓")
            .icon("🔓")
            .bold("🔓")
    );

    characters.insert("locked".to_string(),
        CharacterSet::new()
            .simple("🔒")
            .icon("🔒")
            .bold("🔒")
    );

    // 游戏设置
    characters.insert("settings".to_string(),
        CharacterSet::new()
            .simple("⚙")
            .icon("⚙️")
            .bold("⚙")
    );

    characters.insert("options".to_string(),
        CharacterSet::new()
            .simple("⚙")
            .icon("⚙️")
            .bold("⚙")
    );

    characters.insert("save".to_string(),
        CharacterSet::new()
            .simple("💾")
            .icon("💾")
            .bold("💾")
    );

    characters.insert("load".to_string(),
        CharacterSet::new()
            .simple("📂")
            .icon("📂")
            .bold("📂")
    );

    characters.insert("quit".to_string(),
        CharacterSet::new()
            .simple("🚪")
            .icon("🚪")
            .bold("🚪")
    );

    characters.insert("exit".to_string(),
        CharacterSet::new()
            .simple("🚪")
            .icon("🚪")
            .bold("🚪")
    );

    characters
}
